
package ecmnext.analysis;

/***************************************************************/
/*                     SOFTWARE SECTION                        */
/***************************************************************/
/*
 * <p>Name: Jessx</p>
 * <p>Description: Simulation of the platform of trading Software</p>
 * <p>Licence: General Public License</p>
 * <p>Organisation: EC Marseille</p>
 * <p>Persons involved in the project : group Plateforme de Trading</p>
 * <p>Current version: 1.0</p>
 */



/***************************************************************/
/*                       IMPORT SECTION                        */
/***************************************************************/

import javax.swing.*;
import java.util.logging.Logger;

import org.jdom.*;

/***************************************************************/
/*                Analysable INTERFACE SECTION                 */
/***************************************************************/

/**
 * <p>Title: Analysable</p>
 * <p>Description: This interface should (must in fact) be implemented by all
 * analysis module. The core need these services to be implemented.<br />
 * setDocument(Document xmlDoc) will be called first. The argument is the xml
 * document to analyse. Then drawGraph() is called. The return parameter is a
 * JPanel that should contain the result of the analysis.</p>
 * @author Xuewen YANG ET Antoine COUDERC
 * @version 1.0
 */

public interface AnalysisTool {

  /**
   * How the tool will be displayed on the graphic user interface.
   * @return String the name of the tool
   */
  public String getToolName();

  /**
   * The about box displays some info about loaded tools.
   * @return String authors of the tool
   */
  public String getToolAuthor();

  /**
   * A description of the tool (should be short: < 20 words)
   * @return String a short description of the tool.
   */
  public String getToolDescription();

  /**
   * this function will be called first. The core gives at this time the xml
   * document to the module.
   * @param xmlDoc Document to analyse.
   */
  public void setDocument(Document xmlDoc);

  /**
   * Then the core calls this function. The panel return should contain a graph,
   * or any kind of analysis.
   * @return JPanel containing the analysis.
   */
  public JPanel drawGraph();

}

